package chaoyue.study.reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;

/**
 * 反射与方法
 */
public class Test08 {
    public static void main(String[] args) throws Exception {
        Class clazz = Class.forName("chaoyue.study.reflect.bean.User");
        // 获取所有的方法，包括私有的
        Method[] methods = clazz.getDeclaredMethods();
        for (Method method : methods) {
            // 获取返回值类型
            String returnType = method.getReturnType().getSimpleName();
            // 获取修饰符列表
            String modifier = Modifier.toString(method.getModifiers());
            // 获取方法名
            String methodName = method.getName();
            // 获取参数列表
            Parameter[] parameters = method.getParameters();
            for (Parameter parameter : parameters) {
                String simpleName = parameter.getType().getSimpleName();
            }
            // 因为参数中重要的是参数类型，所以也可以直接获取参数类型
            Class[] parameterTypes = method.getParameterTypes();
        }
    }
}
